#include<stdio.h>
#include<sys/types.h>
#include<signal.h>
#include<stdlib.h>
#include<unistd.h>

int count = 0;

void handler(int signo)
{
  printf("after 1s... count: %d\n", count);
  exit(1);
}

int main()
{
  signal(SIGALRM, handler);
  alarm(1); //没有设置alarm信号(14)的捕捉/自定义动作, 执行默认动作:终止进程
  while(1)
  {
    //printf("people change...%d\n", count);
    count++;
  }
  return 0;
}
//void handler(int signo)
//{
//  printf("well, I recieved %d signal\n", signo);
//}
//
//int main()
//{
//  int sig;
//  for(sig = 1; sig <= 31;sig++)
//  {
//    signal(sig, handler);
//  }
//  
//  alarm(20);
//  
//  //sleep(5);
//  //ret = alarm(0); //取消闹钟
//
//  //printf("autually, it still left %d seconds\n", ret);
//  
//  return 0;
//}
//static void Usage(const char* proc)
//{
//  printf("Usage:\n\t%s signo who", proc);
//}
//
//int main(int argc,char* argv[])
//{
//  // ./mytest signo who
//  if(argc != 3)
//  {
//    Usage(argv[0]);
//    return 1;
//  }
//  
//  int signo = atoi(argv[1]);
//  int who = atoi(argv[2]);
//  
//  kill(who, signo);
//  
//  return 0;
//}
//#include<stdio.h>
//#include<unistd.h>
////#include<signal.h>
////#include<stdlib.h>
//#include<sys/types.h>
//#include<sys/wait.h>
//
//int main()
//{
//  if(fork() == 0)
//  {
//    while(1)
//    {
//      printf("I am child...\n");
//      int a = 10;
//      a /= 0;
//    }
//  }
//
//  int status = 0;
//  waitpid(-1, &status, 0);
//
//  printf("exit code: %d, exit sig:%d, core dump flag: %d\n", (status>>8)&0xFF, status&0x7F, (status>>7)&1);
//  return 0;
//}

//void handler(int signo)
//{
//  switch(signo)
//  {
//    case 2:
//      printf("Ayayaya~\n");
//      break;
//    case 3:
//      printf("people change a lot\n");
//      break;
//    case 9:
//      printf("I am tired\n");
//      break;
//    default:
//      printf("signo: %d\n", signo);
//      break;
//  }
//  exit(1);
//}
//
//int main()
//{
//  //通过signal注册对2号信号的处理动作，改成我们自定义的动作
//  //int sig;
//  //for(sig = 1; sig<=31; sig++)
//  //{
//  //  signal(sig, handler); 
//  //}
//
//  //int* p = NULL;
//  //*p = 100;
//  
//  while(1)
//  {
//    int a = 10;
//    a /= 0;
//    printf("people change...pid: %d\n", getpid());
//    sleep(1);
//  }
//  return 0;
//}
